home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / c / unix / include / internal / files.h < prev    next >
C/C++ Source or Header  |  1992-08-16  |  1KB  |  36 lines

  1. #ifndef FILES_H
  2. #define FILES_H
  3.  
  4. struct fileinfo {
  5.   int flags;
  6.   void *userinfo;
  7.   unsigned long (*select_start)(void *userinfo, int rd, int wr);
  8.   void (*select_poll)(void *userinfo, int *rd, int *wr);
  9.   int (*read)(void *userinfo, void *buffer, unsigned int length);
  10.   int (*write)(void *userinfo, void *buffer, unsigned int length);
  11.   int (*lseek)(void *userinfo, long rpos, int mode);
  12.   int (*close)(void *userinfo, int internal);
  13.   int (*ioctl)(void *userinfo, int request, void *data);
  14. };
  15.  
  16. /* FI_READ & WRITE replace O_RDONLY, WRONLY & RDWR. Other flags are left untouched */
  17. #define FI_READ 1
  18. #define FI_WRITE 2
  19.  
  20. int _alloc_fd(void *userinfo, int flags,
  21.   unsigned long (*select_start)(void *userinfo, int rd, int wr),
  22.   void (*select_poll)(void *userinfo, int *rd, int *wr),
  23.   int (*read)(void *userinfo, void *buffer, unsigned int length),
  24.   int (*write)(void *userinfo, void *buffer, unsigned int length),
  25.   int (*lseek)(void *userinfo, long rpos, int mode),
  26.   int (*close)(void *userinfo, int internal),
  27.   int (*ioctl)(void *userinfo, int request, void *data)
  28. );
  29.  
  30. void _free_fd(int fd);
  31.  
  32. struct fileinfo *_find_fd(int fd);
  33. int _last_fd(void);
  34.  
  35. #endif
  36.